using UnityEngine; using System.Collections; namespace TMPro.Examples { public class ShaderPropAnimator : MonoBehaviour { private Renderer m_Renderer; private Material m_Material; public AnimationCurve GlowCurve; public float m_frame; void Awake() { // Cache a reference to object's renderer m_Renderer = GetComponent<Renderer>(); // Cache a reference to object's material and create an instance by doing so. m_Material = m_Renderer.material; } void Start() { StartCoroutine(AnimateProperties()); } IEnumerator AnimateProperties() { //float lightAngle; float glowPower; m_frame = Random.Range(0f, 1f); while (true) { //lightAngle = (m_Material.GetFloat(ShaderPropertyIDs.ID_LightAngle) + Time.deltaTime) % 6.2831853f; //m_Material.SetFloat(ShaderPropertyIDs.ID_LightAngle, lightAngle); glowPower = GlowCurve.Evaluate(m_frame); m_Material.SetFloat(ShaderUtilities.ID_GlowPower, glowPower); m_frame += Time.deltaTime * Random.Range(0.2f, 0.3f); yield return new WaitForEndOfFrame(); } } } }